import { close, open } from '../_redis';
import { get_use_info } from './_get-user-info';

/**
 * 设置角色
 * @param actionid 系统参数，fd.data.actionid
 * @param spaceid 系统参数，fd.data.spaceid
 * @param sessionid 系统参数，fd.data.sessionid
 * @param productid 项目productid
 * @param clienttype 端点类型，web：3,h5：2,xcx:9
 * @param role_no 要切换的角色编号
 */
export default async function set_user_role(actionid: string, spaceid: string, sessionid: string, productid: string, clienttype: string, role_no: string) {
	const client = open();
	try {
		// 切换角色：
		// 1. 根据当前sessionid获取全部角色列表(过滤到当前角色)「只需要角色id和角色名称」	服务二Node.js
		// const all_role_name = PREFIX_ROLES + sessionid;
		// 2. 重新设置用户当前角色并查询									服务三Node.js
		// 如果重新设置了用户权限，当前用户需要重新登陆才能生效
		const user_info = await get_use_info(client, actionid, sessionid, spaceid, productid, clienttype, role_no);
		if (!user_info) {
			return { result: false };
		}
		const has_role = user_info.roles.some((role) => {
			return role.role_no === user_info.role_no;
		});
		return has_role ? { result: true } : { result: false };
	} finally {
		close(client);
	}
}
